// TestCaseModel
// (c)2007 Mark Bulmahn. mBulmahn@web.de
// License: GPL 2.0
// Project: TestCaseGenerator. http://www.codeplex.com/TestCaseGenerator

using System;
using System.Collections.Generic;
using System.Text;

namespace TestCaseModel
{
    /// <summary>
    /// A single parameter in a test model.
    /// A parameter in this context is a variable that can take several values
    /// which are represented by the member "classes". Classes in this context
    /// means "equivalent classes" - somewhat like an enumeration.
    /// Equivalent classes are an instrument for simplification in software
    /// testing.
    /// </summary>
    [Serializable]
    public class Parameter
    {
        string name = "";
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        EquivClasses classes = new EquivClasses();
        public EquivClasses Classes
        {
            get { return classes; }
            set { classes = value; }
        }

        // only for backwards compatibility - the
        // rules for null conditions are now stored
        // in the property "NullConditionExpr"
        string nullCondition = "";
        public string NullCondition
        {
            get { return nullCondition; }
            set { nullCondition = value; }
        }

        ResultRule nullConditionExpr = null;
        public ResultRule NullConditionExpr
        {
            get { return nullConditionExpr; }
            set { nullConditionExpr = value; }
        }

        int orderId = 0;

        public int OrderId
        {
            get { return orderId; }
            set { orderId = value; }
        }


        public Parameter()
        {
        }


        #region IComparable Members

        public int CompareTo(object obj)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
